# 列表的创建
# 列表中的元素可以是任意类型的

c = [] # todo：定义了一个空列表
"""d = list() # 通过List()方法创建空列表
e = list(range(10))
print(e) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"""

"""for i in range(10):
    print(i)"""

# todo：通过推导式生成列表
"""nums = [i for i in range(10)]
print(nums)"""
# 如果是正常写列表需要三行
# todo：append只能用于列表 在末尾追加元素
"""nums_1 = [] # 这是个 列表 用来收集元素
for i in range(10):
    nums_1.append(i)
print(nums_1)"""

# todo:列表的内置方法 1、【append】2、【insert】3、【count】4、【remove】5、【pop】
"""str_1 = "111122345677"
print(str_1.count(2))"""
nums_2 = [10,20,30,10]
# append 在列表末尾追加元素
"""nums_2.append(20)
print(nums_2)"""
# insert 指定索引位置新增 原该位置元素往后挪一位
"""nums_2.insert(0,"沈腾")
print(nums_2)"""
# count 统计元素出现的次数
"""print(nums_2.count(10))"""
# remove 删除具体的值
"""nums_2.remove(10)  # 用remove删除方法，返回的是None，表示没有返回值
print(nums_2)"""
# pop 根据索引位置删除元素
"""result = nums_2.pop(3)
print(nums_2)
print(result) # 使用pop删除是有返回值的，返回的是被删除的元素"""
# 根据del方法删除 #todo:python的内置方法，并不是List的内置方法
"""del nums_2[0]
print(nums_2)"""
# todo:修改列表内容
"""print(nums_2[0])
nums_2[0] = "沈腾plus"
print(nums_2)"""
# 查看列表内容
stu_name = ["沈腾","马丽","艾伦","袁华","黄晓明","龚俊"]
# 切片访问
# 我想拿出马丽、艾伦
"""print(stu_name[1:3])"""

# 遍历访问list对象，用for循环
"""for i in stu_name:
    print(i)"""
# todo :遍历访问list对象，用for循环通过索引方式，结合len方法获取长度
"""print(len(stu_name))
for i in range(len(stu_name)): # range(6) 循环6次，每次从0开始到5结束
    print(stu_name[i])"""

# 遍历访问list对象，使用while循环
"""num = 0
while num <len(stu_name):
    print(stu_name[num])
    num += 1"""

# todo：列表推导式案例
# 创建一个10以内的偶数列表
"""num_ou = [i for i in range(10) if i % 2 == 0]
print(num_ou)"""
# 和上面输出一样
"""num_ou = []
for i in range(10):
    if i % 2 == 0:
        num_ou.append(i)
print(num_ou)"""
# todo : 创建一个元素
"""nums2 = [(x,y) for x in range(5,10) for y in range(10,20)]
print(nums2)"""
# todo:相当于这个列表
"""nums2_1 = []
for x in range(5,10):
    for y in range(10,20):
        nums2_1.append((x,y))
print(nums2_1)"""

# todo: 列表推导式
ts_file = ['2.ts','3.ts','4.ts','5.ts']
# 变成字符串的数字
"""s1 = [i.replace('.ts',"") for i in ts_file]
print(s1)"""
# 变成整数
"""s2 = [int(i.replace('.ts','')) for i in ts_file]
print(s2)"""
# todo : sorted 对整数的列表进行排序
"""l1 = [99,109,65,12,555]
print(sorted(l1)) # reverse 默认值是False 升序；如果是True 降序
print(sorted(l1,reverse=True))
print(l1) # 但是原来的列表不会变"""
# todo:reversed：倒序方法
l2 = [99,109,65,12,555]
# print(reversed(l2)) # todo:直接返回的是迭代器地址
"""print(list(reversed(l2))) # 如果想要看倒序的列表内容，需要强制转换成列表对象
print(l2[::-1]) # 和上面的reversed方法等同"""

# todo:clear 列表内部元素清空
l3 = [10,20,30]
"""del l3 # 直接把列表删掉
print(l3) # name 'l3' is not defined"""
l3.clear() # 清空元素，但是列表还在
print(l3) # 空列表默认 []